/*定义一个范型函数，可以实现任意类型数组的排序*/
#include <iostream>
using namespace std;

template <typename T>
void mySort(T* data,int len,bool(*cmp)(T,T))
{
    for(int i=0;i<len;i++)
    {
        for(int j=0;j<len-i-1;j++)
        {
            if(cmp(data[j],data[j+1]) != 0)
            {
                T tmp;
                tmp=data[j];
                data[j]=data[j+1];
                data[j+1]=tmp;
            }
        }
    }
}

bool cmp(int x,int y)
{
    return x>y;
}

int main(int argc,char*argv[])
{
    int a[5]={1,4,2,5,3};
    mySort(a,5,cmp);
    for(int i=0;i<5;i++)
    {
        cout<<a[i]<<endl;
    }
    return 0;
}